腾讯云Java工程师一面 + 被捞一面 + 二面面经
《Java 面试指北》来啦!这是我这两年利用业余时间完成的 JavaGuide 开源版的补充。
文|牛客网:牛客 71576213 号
【一面】全程 55min
先自我介绍一下吧 Java1.8 的新特性?你说到了 Lambda 表达式,你说说它的优缺点? Java 8 的 Stream 流用过吗?有什么特点? 线程池创建的方式有哪些? ThreadPoolExecuter
的参数有哪些?ArrayList
和LinkedList
的区别在哪里?Queue
与Deque
的区别?HashMap
和TreeMap
区别?假设有一个 10W 的数据请求,你会有什么方法来实现这些数据的增删改查? 数据库的三大范式是什么? MyISAM 和 InnoDB 的区别? MySQL 主键索引和普通索引的区别是什么?谁的性能更好一些?如果是在 10W 级的数据下,谁的性能更好些? 介绍一下联合索引吧? 以(a,b,c)为例,在什么情况下,单查 b 也能够命中联合索引? 算法题:手写代码实现单向链表的结构体,完成增删改查。 反问环节:你有什么问题想问我的不?
面试总结:感觉问题的题目不是太难,只怪自己太菜,基础没掌握好,面试官人不错,要是有人捞,我还想再来一次!第二天流程已结束。。
好家伙,不知道发生了什么,我又开始了新的流程,这难道就是传说中的二战!!!还是腾讯云。
【一面】全程 46min
自我介绍, 接着就是来俩算法题:题 1:统计一串字符中,重叠字符出现的次数。(如 AAABBBCC,输出 A_3_B_3_C_2)题 2:求两个字符的最长公共子串 你用过哪些数据库?MySQL 数据库的存储引擎了解过哪些?这些存储引擎的特点是什么? MySQL 默认是什么存储引擎,为啥用这个? InnoDB 和 MyISAM 的有啥区别?和 MEMORY 呢? InnoDB 为啥索引的数据结果要用 B+树? 为啥不用 Hash 索引?Hash 索引查找的时候不是更快吗? 网络编程了解过吗?说说如何创建一个 Socket 连接 C++的基本数据结构了解过吗? 反问环节:你有什么问题想问我的不?
【二面】全程 43min
今天上午突然给我发邮件让我下午二面,这霸道总裁的通知风格。。。
看你有个比赛,你这个比赛里面做的什么?(15min) 你还写过哪些应用程序,说说看?数据存储用的什么,web 服务器用的什么? C++了解过吗? 软件设计师什么时候考的?? 写过多进程和多进程吗?都在什么情况下用过?遇到了什么困难不? 有没有 Linux 下的编程经验? Linux 常用命令了解哪些? 网络编程用过吗?Sokect? Linux 中的 epoll 和 select 这些多路复用了解过吗? 说说五层网络模型吧,说说对应的协议吧 抓过网络包吗? 如果要设计一个快速插入和查找的数据结构,你会用什么结构?Hash 冲突的解决方法? 有一个容量为 N 的数组,里面存放了 N 个数,每个数的取值范围是 1~N,有没有什么快速办法判断是否有重复元素,哪个元素重复了?空间复杂度要求是 O(1) 求二叉树深度的算法呢?说说看?时间和空间尽可能的小 设计模式了解过吗?了解一下 UML 类图理解的怎么样?画个类图吗? 云计算的知识了解吗?容器用过吗?大数据套件了解过吗?ELK 了解过吗?看过开源架构系统的代码吗?(这全是知识盲区啊。。。) 分布式存储了解过吗? 一个进程的栈大小是多少知道吗?打开文件的上限是多少? 你觉得你擅长做什么业务? 反问环节
总结:整个过程主动补充有点少,导致场面数次陷入安静的尴尬场面,最长的一次甚至长达 30 多秒。以后的面试还是要多多扩展自己讲的内容。
参考答案
上面的绝大部分问题,你都可以在下面的这几篇文章中找到答案。
Java8 新特性实战[1] Java 线程池详解[2] Java 集合常见知识点&面试题总结(上)[3] Java 集合常见知识点&面试题总结(下)[4] 数据库基础知识[5] MySQL 知识点&面试题总结[6] MySQL 索引详解[7] 后端程序员必备的 Linux 基础知识总结[8] OSI 和 TCP/IP 网络分层模型详解(基础)[9] 《Java 面试指北》
参考资料
Java8 新特性实战: https://javaguide.cn/java/new-features/java8-common-new-features.html
[2]Java 线程池详解: https://javaguide.cn/java/concurrent/java-thread-pool-summary.html
[3]Java 集合常见知识点&面试题总结(上): https://javaguide.cn/java/collection/java-collection-questions-01.html
[4]Java 集合常见知识点&面试题总结(下): https://javaguide.cn/java/collection/java-collection-questions-02.html
[5]数据库基础知识: https://javaguide.cn/database/basis.html
[6]MySQL 知识点&面试题总结: https://javaguide.cn/database/mysql/mysql-questions-01.html
[7]MySQL 索引详解: https://javaguide.cn/database/mysql/mysql-index.html
[8]后端程序员必备的 Linux 基础知识总结: https://javaguide.cn/cs-basics/operating-system/linux-intro.html
[9]OSI 和 TCP/IP 网络分层模型详解(基础): https://javaguide.cn/cs-basics/network/osi&tcp-ip-model.html
·········· END ··············
近期文章精选 :
如果本文对你有帮助的话,欢迎点赞&在看&分享,这对我继续分享&创作优质文章非常重要。感谢🙏🏻